home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / u_man / cat1 / rqs.z / rqs
Text File  |  1998-10-30  |  12KB  |  265 lines

  1.  
  2.  
  3.  
  4. RRRRQQQQSSSS((((1111))))                                                                  RRRRQQQQSSSS((((1111))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      rqs: rqs32 - make 32-bit executable or shared object QUICKSTARTable
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      rrrrqqqqssss [-_t timestamp_value_in_hex] [-_l text_address_in_hex] [-_c
  13.      so_locations_file] [-_u so_locations_file] [-_f] [-_L] [-_L_d_i_r] [-_r
  14.      root_path] [-_c_h_r_o_o_t root_path] [-_l_o_g <file>] [-_r_l_d__a_d_d_r <address>] [-
  15.      _r_l_d__a_d_d_r__o_n_l_y] [-_r_l_d__u_n_r_e_s_o_l_v_e__c_h_e_c_k__o_n_l_y] [-_r_l_d__f_o_r_c_e__n_o_q_u_i_c_k_s_t_a_r_t__o_n_l_y]
  16.      _o_b_j_e_c_t
  17.  
  18. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  19.      _r_q_s and _r_q_s_3_2 function identically and take identical options.  _r_q_s is an
  20.      old 32bit ABI program (-32). _r_q_s_3_2 is a new 32-bit ABI program (-n32).
  21.      Either can process old 32-bit ABI and new 32-bit ABI applications and
  22.      DSOs (so they can be used interchangeably).
  23.  
  24.      _r_q_s takes an object, either an executable or a shared object, and using
  25.      its liblist will then redo all the pre-relocations. For shared objects
  26.      only, if -_l_o_a_d__a_d_d_r_e_s_s is specified, then the specified address will be
  27.      used as the lowest virtual address for that shared object, otherwise
  28.      options -_c_h_e_c_k__r_e_g_i_s_t_r_y and/or -_u_p_d_a_t_e__r_e_g_i_s_t_r_y will be used to figure
  29.      out possible QUICKSTART addresses for that shared object, just like _l_d.
  30.  
  31.      _r_q_s will create a new version of the object and save it back in place,
  32.      overwriting the previous version, so user may want to save a copy of the
  33.      object somewhere before requickstarting it.
  34.  
  35.      For an object to be requickstartable, the bit _R_H_F__R_E_Q_U_I_C_K_S_T_A_R_T must be
  36.      set in the DT_MIPS_FLAGS field of its .dynamic section.  This bit is
  37.      normally set by _l_d.  After an object has been requickstarted, the bit
  38.      _R_H_F__R_E_Q_U_I_C_K_S_T_A_R_T_E_D will be set in the DT_MIPS_FLAGS field of its .dynamic
  39.      section.
  40.  
  41.      With the ----mmmm option _r_q_s will move an object to a requested address even if
  42.      the result will not quickstart.
  43.  
  44.      ----ffff   Requickstart  _o_b_j_e_c_t even if _R_H_F__R_E_Q_U_I_C_K_S_T_A_R_T is not set in _o_b_j_e_c_t.
  45.  
  46.      ----ffffoooorrrrcccceeee____rrrreeeeqqqquuuuiiiicccckkkkssssttttaaaarrrrtttt
  47.           is an alternate spelling of the ----ffff option.
  48.  
  49.      ----tttt timestamp_value_in_hex
  50.           specifies a timestamp value in hex to replace the one in the
  51.           DT_MIPS_TIME_STAMP field of the .dynamic section, applicable to
  52.           shared object only.
  53.  
  54.      ----ttttiiiimmmmeeeessssttttaaaammmmpppp timestamp_value_in_hex
  55.           is an alternate spelling of the ----tttt option.
  56.  
  57.      ----llll text_address_in_hex
  58.           specifies the lowest virtual address for the shared object being
  59.           rqs'ed, when specified, options -check_registry and -update_registry
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. RRRRQQQQSSSS((((1111))))                                                                  RRRRQQQQSSSS((((1111))))
  71.  
  72.  
  73.  
  74.           will be ignored.
  75.  
  76.      ----llllooooaaaadddd____aaaaddddddddrrrreeeessssssss text_address_in_hex
  77.           is an alternate spelling of the ----llll option.
  78.  
  79.      ----cccc so_locations_file
  80.           Check the location of this shared object's segments and make sure
  81.           they stay out of the way of others in the so_locations_file.  A
  82.           single registry file, either with ----cccc or ----uuuu is allowed.  Applicable
  83.           to shared object only.
  84.  
  85.      ----cccchhhheeeecccckkkk____rrrreeeeggggiiiissssttttrrrryyyy so_locations_file
  86.           is an alternate spelling of the ----cccc option.
  87.  
  88.      ----uuuu so_locations_file
  89.           Register the location of this shared object's segments and make sure
  90.           they stay out of the way of others in the so_locations_file.
  91.           so_locations_file is updated if it is writable.  A single registry
  92.           file, either with ----cccc or ----uuuu is allowed.  Applicable to shared object
  93.           only.
  94.  
  95.      ----uuuuppppddddaaaatttteeee____rrrreeeeggggiiiissssttttrrrryyyy so_locations_file
  96.           is an alternate spelling of the ----uuuu option.
  97.  
  98.      ----LLLL   Change the algorithm of searching for libraries to never look in the
  99.           default directories, namely /usr/lib:/lib.  This option has the same
  100.           semantics as -L in ld.
  101.  
  102.      ----LLLLddddiiiirrrr
  103.           Change the algorithm of searching for libraries to look in _d_i_r
  104.           before looking in the default directories.  This option has the same
  105.           semantics as -Ldir in ld.  The environment variable _L_D__L_I_B_R_A_R_Y__P_A_T_H
  106.           can also be used for this purpose.  (For a new 32bit ABI object
  107.           _L_D__L_I_B_R_A_R_Y_N_3_2__P_A_T_H is used if it exists, else _L_D__L_I_B_R_A_R_Y__P_A_T_H is
  108.           used if it exists.)
  109.  
  110.      ----mmmm   Move the dso even if address overlaps are detected (without this
  111.           option address overlaps cause _r_q_s to exit without doing anything).
  112.           If an address overlap is detected the RHF_QUICKSTART flag is reset
  113.           (to 0) in the dynamic section.  Generally useful only if the ----llll
  114.           option is also on the command line.
  115.  
  116.      ----vvvv   Makes rqs more verbose.  Generally intended for debugging, but is
  117.           useful if one wants to know if the ----mmmm option detected any address
  118.           overlaps, as this enables a message about such overlaps.
  119.  
  120.      ----rrrr root_path
  121.           Change the path of the default directories that rqs uses for
  122.           searching libraries by appending _r_o_o_t__p_a_t_h to the front of the
  123.           default path, just like that in _RLD_ROOT.  It can also be a
  124.           colon(:) separated list.  In fact, the environment variable
  125.           __R_L_D__R_O_O_T can also be used for this purpose. (For a new 32bit ABI
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. RRRRQQQQSSSS((((1111))))                                                                  RRRRQQQQSSSS((((1111))))
  137.  
  138.  
  139.  
  140.           object, use __R_L_D_N_3_2__R_O_O_T instead of __R_L_D__R_O_O_T).
  141.  
  142.      ----rrrrooooooootttt root_path
  143.           is an alternate spelling of the ----rrrr option.
  144.  
  145.      ----cccchhhhrrrrooooooootttt root_path
  146.           This causes the named directory _r_o_o_t__p_a_t_h to become the root
  147.           directory, the starting point for path searches for path names
  148.           beginning with /.
  149.  
  150.      ----lllloooogggg file
  151.           Pipes all error messages to <_f_i_l_e> instead of standard output.
  152.  
  153.      ----rrrrlllldddd____aaaaddddddddrrrr address
  154.           Sets the dynamic section DT_MIPS_RLD_TEXT_RESOLVE_ADDR to _a_d_d_r_e_s_s.
  155.  
  156.      ----rrrrlllldddd____aaaaddddddddrrrr____oooonnnnllllyyyy
  157.           Restricts the changes to only be to the dynamic section
  158.           DT_MIPS_RLD_TEXT_RESOLVE_ADDR (only effective if the -_r_l_d__a_d_d_r
  159.           option is also on the command line).
  160.  
  161.      ----rrrrlllldddd____uuuunnnnrrrreeeessssoooollllvvvveeee____cccchhhheeeecccckkkk____oooonnnnllllyyyy
  162.           Restricts the changes to be to the dynamic section's
  163.            DT_MIPS_FLAGS to set or unset RHF_NO_UNRES_UNDEF depending on if
  164.           there were-not or were any undefined variables.
  165.  
  166.      ----rrrrlllldddd____ffffoooorrrrcccceeee____nnnnooooqqqquuuuiiiicccckkkkssssttttaaaarrrrtttt____oooonnnnllllyyyy
  167.           Restricts the changes to be to reset the dynamic section's
  168.           DT_MIPS_FLAGS RHF_QUICKSTART flag.
  169.  
  170.      The following options must be put into the environment variable ____RRRRQQQQSSSS____AAAARRRRGGGGSSSS
  171.      to be understood: they cannot be on the command line.
  172.  
  173.      ----ddddeeeebbbbuuuugggg mmmmaaaapppp
  174.           Used for debugging _r_q_s.  Prints information about the mapping
  175.           (address) of the object.
  176.  
  177.      ----ddddeeeebbbbuuuugggg ssssyyyymmmmbbbboooollll
  178.           Used for debugging _r_q_s.  Prints information about the symbol
  179.           searches and symbol finding in the object (in symbol relocation).
  180.  
  181.      ----ddddeeeebbbbuuuugggg MMMMAAAALLLLLLLLOOOOCCCC
  182.           Used for debugging _r_q_s.  Prints a trace of some of the
  183.           malloc/realloc calls.
  184.  
  185.      ----ddddeeeebbbbuuuugggg hhhhaaaasssshhhh
  186.           Used for debugging _r_q_s.  Prints a trace of the hashing function used
  187.           searching a hash table for a symbol.  Prints  information about how
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. RRRRQQQQSSSS((((1111))))                                                                  RRRRQQQQSSSS((((1111))))
  203.  
  204.  
  205.  
  206. FILES
  207.      /usr/etc/rqs
  208.      /usr/etc/rqs32
  209.      /usr/lib/so_locations (for old 32bit ABI)
  210.      /usr/lib32/so_locations (for new 32bit ABI)
  211.  
  212. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  213.      ld(1), rld(1), rqs64(1), and rqsall(1)
  214.  
  215. NNNNOOOOTTTTEEEESSSS
  216.      To move a set of DSOs to a common base address a command such as in this
  217.      example
  218.          #!/bin/sh
  219.          for in dso1.so dso2.so dso3.so
  220.          do
  221.             rqs -l 0x300000 -m -f  $i
  222.          done
  223.      is useful.  One might want to do this if a set of DSOs used by an
  224.      application takes too much virtual address space to lay out sequentially
  225.      and the set is too large to try to provide an _s_o__l_o_c_a_t_i_o_n_s at link time.
  226.  
  227.      Some options have long and short spellings. For example, ----ffff and
  228.      ----ffffoooorrrrcccceeee____rrrreeeeqqqquuuuiiiicccckkkkssssttttaaaarrrrtttt do the same thing. The short form is easier to
  229.      remember and spell.  Because the long form is used in existing scripts
  230.      and programs, both forms will be supported.
  231.  
  232.      Where any option specifies that a value supplied on the command line is
  233.      to be in hexadecimal, the value is interpreted as hexadecimal digits
  234.      whether or not a leading "0x" is part of the option value.
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.